SimSpark平台手册阅读
SimSpark平台手册阅读
User Manual翻译
simspark
在本节中,您将找到有关从服务器发送到代理(感知者),反之亦然(执行者)的消息的信息。 在[Sch08](德语),[Lea07](斯洛伐克)以及[Vor06]的某些部分中也可以找到对感知器和效应器的描述(不过,这与较旧的“领域”模拟有关,因此有些信息已经过时了)。
General message format
通用消息格式
往返服务器的消息使用S表达式(符号表达式的缩写)作为其基本数据结构。 S表达式的基本概念非常简单:它们可以是字符串,也可以是更简单的S表达式的列表。 它们可能以在Lisp编程语言系列中的使用而闻名,在Lisp系列编程语言中,它们同时用于代码和数据。
与其他数据格式相比,使用S表达式的一个优点是它提供了易于解析和紧凑的语法,在某种程度上,对于调试目的,人类仍然可以理解。
在客户端上的解析器可以轻松忽略未知部分,因此可以更轻松地向消息中添加新传感器。
客户端和服务器之间交换的消息使用默认的ASCII字符集,即 一个字符编码在单个字节中。 此外,每个单独的消息都以有效载荷消息的长度为前缀。 长度前缀是网络顺序的32位无符号整数,即以高位有效位开头的大尾数表示法 。
Perceptor
感知器
感知器用于感知代理环境。 它们从服务器发送到每个代理,并包含有关环境和代理本身的特定于代理和特定于感知器的信息。 有些感知器可用于各种模拟和足球专用感知器。
通用感知器
本小节中描述的感知器可用于所有类型的仿真。 换句话说,它们并非特定于足球环境。
有:铰链联合感知器,万向节感知器,陀螺率感知器,加速度感知器等等。
足球特用感知器
有:视觉感知器,机器人Type感知器,比赛状态感知器等等。
Effectors/Actuator
效应器
效应器用于在模拟中起作用。 它们被发送到服务器以相应地更改游戏状态。 有些效果器可用于各种模拟和足球特效。
通用效应器
Create Effector
/*important*/
当代理最初连接到服务器时,它是不可见的,并且不能以任何有意义的方式影响模拟。 它仅具有所谓的创建效应器。
代理使用此效果器来建议服务器根据它作为参数传递的场景描述文件来构造它。 此文件用于构造物理表示以及所有其他效应子和受体。
Message format: (scene <filename>)
Example message: (scene rsg/agent/nao/nao.rsg)在服务器中构建了代理表示后,代理应进行进一步的仿真特定设置。 例如,在足球模拟中,每个代理商都需要注册到球队并获得唯一的球员号码。 对于这些任务,通常使用特殊的效应器,例如SoccerInitEffector。
其余还有铰链联合效应和万向节效应器。
足球特用效应器
有init,beam,say等效应器。
Simulation Update Loop
SimSpark实现了一个简单的内部事件模型,该模型立即执行从代理收到的每个动作。 它不会尝试补偿任何网络延迟或补偿所连接代理可用的不同计算资源。
结果是SimSpark当前不能保证事件是可重现的。
这意味着重复的仿真可能会产生不同的结果,具体取决于托管代理和服务器的计算机上的网络延迟或负载变化。
但是,这种简单结构的好处是速度的提高,使它对于机器学习任务变得很有趣,因为在这些设置中,经常会测试大量不同的代理和仿真配置。
此外,SimSpark主循环是高度可定制的,因为它完全建立在我们称为simcontrol节点的插件上。 Simcontrol节点已注册到模拟服务器。 它们对控制事件做出响应。 仿真服务器在执行抽象的主循环时会重复生成这些代码。
23事件类型是在模拟服务器启动时为“ init”事件,而在关闭时为“ done”事件。 然后,主循环在“开始周期”,“检测代理”,“代理”和“结束周期”事件中反复循环。
除了生成控制事件之外,模拟服务器还可以延长在最后一个周期中通过的模拟时间。 根据其配置,它既可以离散时间量化,也可以一步完成。
Simcontrol节点还可以负责时间测量,例如将模拟时间与用于渲染场景的实时时间同步。 否则,模拟将尽可能频繁地以固定时间步进。
这样,所有管理任务都将实现为模拟服务器的插件。 这涉及代理管理,监视器管理,渲染,鼠标和键盘输入以及网络代码。
通过此设置,我们可以在运行时将仿真配置为既可以执行仿真又可以进行渲染的整体应用程序,也可以将其配置为可以将渲染推迟到远程监视器应用程序的专用仿真服务器。后面描述了单线程及双线程计时器。
Multi-threaded Timer
Single-threaded Timer
The Robot Model
足球仿真提供了不同的机器人模型。下面,我们只描述在这个时间点随仿真软件包提供的最先进的机器人模型。您可以在目录rcssserver3d/data/rsg/agent/中找到其他一些模型,例如soccerplayer.rsg,或hoap2.rsg文件。这些目前还没有在任何模拟中使用,被认为是实验性的。
除此之外,其他机器人模型的工作正在进行中,可用时将在这里进行描述。我们计划整合富士通自动化公司(Fujitsu Automation)改进的HOAP-2机器人模型、VisiON 4g机器人模型和Sony AIBO。有关如何为模拟创建新机器人模型的帮助,请查看SimSpark Wiki中的教程http://simspark.sourceforge.net/wiki/。
soccerbot
Soccerbot是一种具有20自由度(DOF)的仿人机器人,如图8.3所示。
对于一个真正的仿人机器人(见表8.2),其当前的尺寸是非常不现实的,这是由于在机器人首次建模时物理模拟的不稳定性。这是这种机器人模型的一个严重缺点,应该加以改进。另一个公开的问题是,关节范围在当前模型中不受限制。这允许非常不切实际的动作,可以很有趣地观看,但可以在竞争中导致不公平的行为。
设备及参数(Equipment & Parame)
介绍soccerbot和Nao机器人的身体参数等。
/*important*/
实现Nao机器人模型在rcssserver3d/data/rsg/agent/Nao下的rsg文件中实现,具体见表8.5。这一部分深入得多,有点无聊。
box appearance.rs | 安装一个用于GL rende的box. |
---|---|
box physics.rsg | 安装一个具有物理效果的box(与ODE相关) |
box physics nocollider.rsg | 安装一个只具有动力学效果(质量、线速度等)的盒子。但它永远不会与其他物体相撞。 |
box physics with handler.rsg | 不仅仅是作为box physics.rsg,而且也要在BoxCollider节点下安装touchperceptorhandler。 |
capsule appearance.rsg | 安装用于GL渲染的胶囊 |
capsule physics.rsg | 安装具有物理效果的胶囊(与ODE相关) |
capsule physics nocollider.rsg | 安装一个只具有动力学效应(质量、耳速等)的胶囊。但它永远不会与其他物体相撞。 |
contactjointhandler.rsg | 安装contactjointhandler来处理碰撞。 |
dragcontroller.rsg | 安装牵引控制器 |
goal.rsg | 设定球门 |
hingejoint.rsg | 安装铰链接头 |
一个机器人应该需要很多文件来生成以实现各个作用?
wiki
SimSpark 配备了不同的机器人模型供代理商使用。每个模型的物理表示形式存储在.rsg
文件中。模型的可视方面存储在.obj
和.mtl
文件中。
一个制作模型的软件:
HomePage:https://sites.google.com/site/zigorat3d/zigobot-designer
BaseCode部分有论文文档及源码。
总结:
在simspark这章节中,有server发送到agent的各种消息格式,还包括对效应器和感知器的介绍。 还有Simulation Update Loop(和线程相关,不懂)
保存机器人模型的文件在.rsg文件中,实现Nao机器人模型在rcssserver3d/data/rsg/agent/Nao下的rsg文件中实现。
wiki:一个制作模型的软件。
Create Effector
/*important*/
当代理最初连接到服务器时,它是不可见的,并且不能以任何有意义的方式影响模拟。 它仅具有所谓的创建效应器。
代理使用此效果器来建议服务器根据它作为参数传递的场景描述文件来构造它。 此文件用于构造物理表示以及所有其他效应子和受体。
Message format: (scene <filename>)
Example message: (scene rsg/agent/nao/nao.rsg)rsg文件是使用lisp语言作为mode.